#define  _CRT_SECURE_NO_WARNINGS 1
//��һ��
//https://www.nowcoder.com/practice/f0db4c36573d459cae44ac90b90c6212?tpId=182&tqId=34789&ru=/exam/oj
//#include <iostream>
//#include <iterator>
//#include<string>
//using namespace std;
//
//int main() {
//    string s1, s2;
//    getline(cin, s1);
//    cin >> s2;
//    for (size_t j = 0; j < s2.size(); ++j) {
//        while (s1.find(s2[j]) != string::npos)
//            s1.erase(s1.find(s2[j]), 1);
//    }
//    cout << s1 << endl;
//    return 0;
//
//}
//�ڶ���
//https://www.nowcoder.com/practice/6ab1d9a29e88450685099d45c9e31e46?tpId=13&tqId=11189&ru=/exam/oj
//struct ListNode {
//	int val;
//	struct ListNode *next;
//	ListNode(int x) :
//			val(x), next(NULL) {
//	}
//};
//class Solution {
//public:
//	ListNode* FindFirstCommonNode(ListNode* pHead1, ListNode* pHead2)
//	{
//		if (pHead1 == nullptr)
//		{
//			return nullptr;
//		}
//		if (pHead2 == nullptr)
//		{
//			return nullptr;
//		}
//		ListNode* node1 = pHead1;
//		int len1 = 0;
//		ListNode* node2 = pHead2;
//		int len2 = 0;
//		while (node1)
//		{
//			if (node1)
//			{
//				len1++;
//			}
//			node1 = node1->next;
//		}
//		while (node2)
//		{
//			if (node2)
//			{
//				len2++;
//			}
//			node2 = node2->next;
//		}
//		ListNode* node3 = pHead1;
//		ListNode* node4 = pHead2;
//		if (len1 > len2)
//		{
//			int len = len1 - len2;
//			while (len)
//			{
//				node3 = node3->next;
//				len--;
//			}
//		}
//		if (len2 > len1)
//		{
//			int len = len2 - len1;
//			while (len)
//			{
//				node4 = node4->next;
//				len--;
//			}
//		}
//		while (node3 && node4) {
//			if (node3->val == node4->val) {
//				break;
//			}
//			node3 = node3->next;
//			node4 = node4->next;
//		}
//		return node3;
//	}
//};
//������
//
// using namespace std;
// #include<iostream>
// #include<string.h>
// #include<stdio.h>
// #include <string>
// int main()
// {
// 	int n = 0;
// 	cin >> n;
// 	string s;
// 	cin >> s;
// 	s.resize(n + 1);
// 	int s1 = 0, k1 = 0, y1 = 0;
// 	for (int i = 0; i < n; i++)
// 	{
// 		if (s[i]=='s')
// 		{
// 			s1++;
// 		}
// 		else if (s[i]=='h')
// 		{
// 			k1+=s1;
// 		}
// 		else if (s[i] == 'y')
// 		{
// 			y1+=k1;
// 		}
// 		else
// 		{

// 		}
// 	}
// 	int sum = y1;
// 	cout << sum << endl;
// 	return 0;
// }

#include <iostream>
#include <string>
using namespace std;
int n;
string str;
int main()
{
	cin >> n >> str;
	long long s = 0, h = 0, y = 0;
	for (int i = 0; i < n; i++)
	{
		char ch = str[i];
		if (ch == 's') s++;
		else if (ch == 'h') h += s;
		else if (ch == 'y') y += h;
	}
	cout << y << endl;
	return 0;
}
